<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0">

  <xsl:output method="xml" omit-xml-declaration="yes"/>

  <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
  <!-- Templates de génération HTML                                                                                  -->
  <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->

  <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
  <!-- Génération du HTML pour un attribut donné
       Dans ce template, le contexte est un attribut (tag <att>)
    -->
  <xsl:template name="genHtmForAtt" >
    <tr  class="tblCll">
      <td>
        <xsl:value-of select="nom"/>
      </td>
      <td>
        <xsl:value-of select="dtaTyp"/>
      </td>
      <td class="tblCllNmr">
        <xsl:value-of select="lng"/>
      </td>
      <td>
        <xsl:value-of select="valDft"/>
      </td>
      <td>
        <xsl:value-of select="flgIdn"/>
      </td>
      <td>
        <xsl:value-of select="flgObl"/>
      </td>
    </tr>
  </xsl:template>

  <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
  <!-- Génération du HTML pour la liste des attributs
       Dans ce template, le contexte est une liste d'attributs (tag <attLst>)
    -->
  <xsl:template name="genHtmForAttLst" >

    <xsl:if test="count( att ) > 0" >
      <table class="tbl">
        <tr class="tblLgnHdr">
          <th>Nom</th>
          <th>Type</th>
          <th>Longueur</th>
          <th>Défaut</th>
          <th>Identifiant</th>
          <th>Obligatoire</th>
        </tr>

        <xsl:for-each select="att">
          <xsl:sort select="nom"/>
          <xsl:call-template name="genHtmForAtt" />
        </xsl:for-each>

      </table>
    </xsl:if>

  </xsl:template>

  <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
  <!-- Templates de changement de contexte                                                                           -->
  <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->

  <xsl:template match="/">
    <!-- Rappel : Le HTML généré sera inséré dans une balise <div> -->

    <h1>Liste des attributs de l'entité <xsl:value-of select="doc/ttr" /></h1>

    <!-- // Les attributs de l'entité ///////////////////////////////////////////////////////////// -->
    <xsl:for-each select="doc/ent/attLst">
      <xsl:call-template name="genHtmForAttLst" />
    </xsl:for-each>

  </xsl:template>

</xsl:stylesheet>